package com.example.softwareconfigurationcoursedesign.Admin;

import com.example.softwareconfigurationcoursedesign.ShopPage.Product;

import java.sql.*;
import java.util.List;

public interface ProductServiceImplement {
    static Product getProductById(int productId) throws ClassNotFoundException {
        String sql = "SELECT * FROM products WHERE id = ?"; // 设置查询语句

        Class.forName("com.mysql.cj.jdbc.Driver");  // 加载数据库驱动
        try (Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/course_design", "root", "123456"); PreparedStatement statement = connection.prepareStatement(sql)) {
            statement.setInt(1, productId); // 设置要查询的用户ID

            try (ResultSet resultSet = statement.executeQuery()) { // 获取结果集
                if (resultSet.next()) { // 如果有结果
                    String pid = resultSet.getString("pid"); // 获取用户ID
                    String pname = resultSet.getString("pname"); // 获取用户名
                    String ptag = resultSet.getString("ptag"); // 获取用户电话号码
                    double pprice = Double.parseDouble(resultSet.getString("pprice")); // 获取用户密码
                    String pstock = resultSet.getString("pstock");
                    String url = resultSet.getString("url");
                    String pdetail = resultSet.getString("product_detail");
                    return new Product(pid, pname, pprice, ptag, url, productId, pdetail); // 返回用户对象
                }
            }
        } catch (SQLException e) {
            e.printStackTrace(System.err);  // 打印异常信息
        }
        return null; // 如果没有找到用户，则返回空
    }

    // 从数据库中获取商品列表的方法
    List<Product> getProductListFromDatabase();

    // 向数据库中添加商品的方法
    void addProduct(int pStock, String pid, String productName, double productPrice, String productTag, String productDetail, String productUrl);

    // 编辑指定商品信息的方法
    void editProduct(int productId, String productName, double productPrice, String productTag, String productDetail, String purl);

    // 删除指定商品的方法
    void deleteProduct(int productId);

    // 根据搜索关键字查找匹配的商品
    List<Product> searchProduct(String searchKeyword);

    // 从数据库中获取购物车商品列表的方法
    List<Product> getProductListCarFromDatabase(String pname);
}
